package cn.like.base.auth;

/**
 * @author like 980650920@qq.com
 * @date 2021/7/10 13:18
 */
public interface AuthContext<T> {

    /**
     * desc: 用户信息 检查成功 <br>
     * details: 保存用户信息，根据不同的权限框架进行实现，比如satoken，spring security，最后返回token value
     *
     * @param user 用户
     * @return: {@link String } token value
     * @author: like 980650920@qq.com
     * @date 2021-07-10 13:30:09
     */
    String doLogin(T user);


    /**
     * 获取用户
     *
     * @return {@link Object}
     */
    T getUser();

    /**
     * 获取用户id
     *
     * @return {@link Long}
     */
    Long getUserId();

    /**
     * 获取用户名字
     *
     * @return {@link String}
     */
    String getName();

}
